let openApi = require('/utils/openApi.js')
import http from 'utils/request.js'
//app.js
App({
  onLaunch: function() {
    this.updateApp()
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    let version = __wxConfig.envVersion
    if (version) {
      if (version == 'develop') {
        this.globalData.baseUrl = 'http://192.168.3.46:9000/'
        // this.globalData.baseUrl = 'https://replay.dota.link/'
      } else if (version == 'trial') {
        this.globalData.baseUrl = 'https://replay.dota.link/'
      } else if (version == 'release') {
        this.globalData.baseUrl = 'https://replay.dota.link/'
      }
    } else {
      this.globalData.baseUrl = 'https://www.dota.link/'
    }

    let token = wx.getStorageSync('token')
    if (!token) {
      this.login()
      // // 获取用户信息
      // wx.getSetting({
      //   success: res => {
      //     // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
      //     if (res.authSetting['scope.userInfo']) {
      //       this.login()
      //     }
      //   }
      // })
    }
  },

  globalData: {
    userInfo: null,
    apiCounter: new Map(),
  },

  login() {
    return new Promise((resolve, reject) => {
      wx.login({
        success: res => {
          if (res.code) {
            http.post(this.globalData.baseUrl + 'login', {
              code: res.code,
              authType: 'wechat'
            }).then(result => {
              result = result.data.data
              wx.setStorageSync('token', result.value);
              wx.setStorageSync('refreshToken', result.refreshToken);
              resolve()
            }).catch(e => {
              reject(e)
            })
          } else {
            reject('未获取权限')
          }
        },
        fail(e) {
          reject(e)
        }
      })
    })
  },

  //公共跳转写在APP里
  gotoMatch(matchId) {
    wx.navigateTo({
      url: `/pages/Match/Match?matchId=${matchId}`
    })
  },
  updateApp: function () {
    const updateManager = wx.getUpdateManager()
    updateManager.onCheckForUpdate(function (res) {
      // 请求完新版本信息的回调
      if (res.hasUpdate) {
        wx.showLoading({
          title: '更新下载中...',
        })
      }
    })
    updateManager.onUpdateReady(function () {
      wx.hideLoading();
      wx.showModal({
        title: '更新提示',
        content: '新版本已经准备好，是否重启应用？',
        success: function (res) {
          if (res.confirm) {
            // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
            updateManager.applyUpdate()
          }
        }
      })

    })
    updateManager.onUpdateFailed(function () {
      // 新的版本下载失败
      wx.hideLoading();
      wx.showToast({ title: '下载新版本失败...', icon: "none" });
    })
  },
  //注意，因为API是免费的
  //所有接口使用openApi代理调取，计算每分钟次数
  openApiProxy: new Proxy(openApi, {
    apply(...arg) {
      //计数

      return Reflect.apply(...arg)
    }
  })
})